Для этого можно внести версию в корневой файл Directory.Packages.props. А внутри проектов писать нуггеты без версий.
<Project>
<ItemGroup>
<PackageVersion Include="Newtonsoft.Json" Version="13.0.1" />
<PackageVersion Include="Serilog" Version="2.10.0" />
</ItemGroup>
</Project>
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("YourTestProjectName")]
Является результатом работы GroupBy, можно итерироваться, хранит ключ группы и список элементов группы
GUID и UUID используют алгоритм именно байтовой генерации, а строки которые мы видим, это результат интерпретации байтов в алфавит из 16ти символов 0-9 A-F, а значит на олин символ уходит половина байта
Таким образом ключ состоящий из 32 символов весит 16 байт изначально
Но, если его сохранять в БД как строку то он начнет весить уже как Unicode строка, а значит будет весить как минимум 32 байта.
Таким образом, выгоднее сохранять в бд специальным типом UUID, а не строкой
Single возвращает единственный элемент, а значит кинет исключение если элементов нет или если их больше чем один
First кидает исключение только если элементов нет